const path = require('path')
function resolve(dir) {
  return path.join(__dirname, dir)
}

require('webpack-bundle-analyzer').BundleAnalyzerPlugin // Webpack包文件分析器
// const publicPath = process.env.NODE_ENV === 'production' ? '/static/' : '/' //font scss资源路径 不同环境切换控制

// vue.config.js
module.exports = {
  // 基本路径
  publicPath: './',
  // 输出文件目录
  outputDir: 'dist',
  // 是否在保存的时候检查
  lintOnSave: true,
  // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  assetsDir: 'static',
  // 以多页模式构建应用程序
  pages: undefined,
  // 是否使用包含运行时编译器的 Vue 构建版本
  runtimeCompiler: false,
  // 生产环境是否生成 sourceMap 文件，一般情况不建议打开
  productionSourceMap: false,
  // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用，仅作用于生产构建，在适当的时候开启几个子进程去并发的执行压缩
  parallel: require('os').cpus().length > 1,

  // webpack配置
  chainWebpack: config => {
    // 代码分析
    if (process.env.VUE_APP_ANALYZER === 'true') {
      config
        .plugin('webpack-bundle-analyzer')
        .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
    }
    // 别名
    config.resolve.alias
      .set('@', resolve('src'))
      .set('assets', resolve('src/assets'))
      .set('components', resolve('src/components'))
      .set('views', resolve('src/views'))
  },

  configureWebpack: config => {
    // 生产&测试环境
    const pluginsPro = []
    // 开发环境
    const pluginsDev = []
    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置process.env.NODE_ENV !== 'development'
      config.plugins = [...config.plugins, ...pluginsPro]
    } else {
      // 为开发环境修改配置...
      config.plugins = [...config.plugins, ...pluginsDev]
    }
  },

  // 选项...
  devServer: {
    open: true, // 配置自动启动浏览器
    hotOnly: true, // 热更新
    port: 8080
  }
}
